
A common practice used to evaluate Feedback Directed Optimization
(\FDO) code transformations is to perform a single-run profile to characterize the behaviour of a program and then to evaluate the performance
of the FDO transformation using  a single-input run of the program. This research addresses this shortcoming of FDO research using a new methodology, the {\em combined profiling} (\CP), to both inform the FDO decisions and produce a more significant performance evaluation of the code produced with FDO. Combined profiling can be applied to many different
optimization techniques, in this paper  we apply it to inlining, a simple and general technique
that allows many other optimization techniques to be performed afterwards. Besides the application of combining profiling and a proper evaluation of inlining, this work also investigates better strategies for inlining and searches for and
better parameter values for the inlining heuristics. The main finds are....

%This paper assesses {\em combined profiling} (CP): a practical
%methodology to produce statistically sound combined profiles from
%multiple runs of a program.  Combining profiles is often necessary to
%properly characterize the behavior of a program to support
%Feedback-Directed Optimization (FDO).  Previous publications described
%the \CP\ methodology, hence the approach here is to evaluate how to
%improve the compiler system parameters and algorithms.  The parameters
%were tuned in, and the choices made by the main algorithm, defining which
%functions were to be inlined, was assessed by comparing its outcome with
%random choices.  A slight change to the algorithm was also empirically
%evaluated trying to improve its result by introducing a knapsack view
%of the problem. The compiler system and the \CP\ methodology were
%evaluated in \llvm\ using SPEC CPU 2006 benchmarks.

%\CP\ models program behaviors
%over multiple runs by estimating their empirical distributions,
%providing the inferential power of probability distributions to code
%transformations.  These distributions are build from traditional
%single-run point profiles; no new profiling infrastructure is
%required.  The small fixed size of this data representation keeps
%profile sizes, and the computational costs of profile queries,
%independent of the number of profiles combined.  However, when using
%even a single program run, a \CP\ maintains the information available
%in the point profile, allowing \CP\ to be used as a drop-in
%replacement for existing techniques. The quality of the information
%generated by the \CP\ methodology is evaluated in \llvm\ using SPEC
%CPU 2006 benchmarks.
